package com.sojson.enums;

import com.sojson.util.StringUtil;

/**
 * 用户环境类型枚举类
 * 
 * @author liu
 * @date 2020-10-01
 */
public enum EEnvironmentUserType {

    /** 后台管理员 */
    WEB_ADMIN(EEnvType.WEB, EUserType.ADMIN),
    /** 后台商户 */
    WEB_MERCHANT(EEnvType.WEB, EUserType.MERCHANT),
    /** APP用户 */
    APP_USER(EEnvType.APP, EUserType.USER),
    /** 小程序用户 */
    XCX_USER(EEnvType.APP, EUserType.USER);

    /** 代码 */
    private String code;
    /** 名称 */
    private String name;
    /** 环境 */
    private String env;
    /** 类型 */
    private String type;
    /** 表名 */
    private String tableName;

    private EEnvironmentUserType(EEnvType env, EUserType type) {
        String envCode = env.getCode();
        String typeCode = type.getCode();
        this.code = envCode + StringUtil.SEPARATOR + typeCode;
        this.name = env.getName() + StringUtil.SEPARATOR + type.getName();
        this.env = envCode;
        this.type = typeCode;
        this.tableName = type.getTableName();
    }

    /**
     * 获取代码
     * 
     * @return
     */
    public String getCode() {
        return code;
    }

    /**
     * 设置代码
     * 
     * @param code
     */
    public void setCode(String code) {
        this.code = code;
    }

    /**
     * 获取名称
     * 
     * @return
     */
    public String getName() {
        return name;
    }

    /**
     * 设置名称
     * 
     * @param name
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * 获取环境
     * 
     * @return
     */
    public String getEnv() {
        return env;
    }

    /**
     * 设置环境
     * 
     * @param env
     */
    public void setEnv(String env) {
        this.env = env;
    }

    /**
     * 获取类型
     * 
     * @return
     */
    public String getType() {
        return type;
    }

    /**
     * 设置类型
     * 
     * @param type
     */
    public void setType(String type) {
        this.type = type;
    }

    /**
     * 获取表名
     * 
     * @return
     */
    public String getTableName() {
        return tableName;
    }

    /**
     * 设置表名
     * 
     * @param tableName
     */
    public void setTableName(String tableName) {
        this.tableName = tableName;
    }

}